Golden Axe II (W)


Goal: Find the intro text. And its pointer.

Make sure your game is de-interleaved (bin) format.

First dialogue screen. Dump memory and find which layer text is on (A).

nt-scr_a shows us $C986 as the NT.

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

hook_ppu 1 c986 c98f

[00:EC86] VRAM W16 = A00E [C986] (*)
[00:EC86] VRAM W16 = A000 [C988]
[00:EC86] VRAM W16 = A013 [C98A]
[00:EC86] VRAM W16 = A012 [C98C]
[00:EC86] VRAM W16 = A023 [C98E]

..

; Read source byte @ $07:FE90

00:EC70  42 43  CLR.W   D3                       A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC72  16 1C  MOVE.b  (A4)+,D3                 A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EC74  0C 03  CMPI.B  #$FE,D3                  A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EC78  64 00  BCC     #$0016 [00:EC90]         A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvC

; Other mode..?

00:EC7C  08 02  BTST    #15,D2                   A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvC
00:EC80  66 00  BNE     #$0008 [00:EC8A]         A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvC

; Write to VRAM
; - D1 = NT attribute bytes
; - D3 = font tile #

00:EC84  D6 41  ADD.W   D1,D3                    A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvC
00:EC86  36 83  MOVE.w  D3,(A3)                  A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=0000A000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc
00:EC88  60 E6  BRA     #$E6 [00:EC70]           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE91 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=0000A000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc

..

; $FE = Newline code

00:EC90  66 00  BNE     #$0010 [00:ECA2]         A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEB6 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=000000FE D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EC94  4C DF  MOVEM.L (A7)+,{a7-d0}[40 00]     A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEB6 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=000000FE D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EC98  46 FC  MOVE    #$2000,SR                A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEB6 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=000000FE D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EC9C  DC FC  ADDA.W  #$80,A6                  A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEB6 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=000000FE D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:ECA0  60 B8  BRA     #$B8 [00:EC5A]           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEB6 A5=00FF3F68 A6=0000CA04 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=000000FE D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc

; $FF = EOS

00:ECA2  4C DF  MOVEM.L (A7)+,{a7-d0}[40 00]     A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEF5 A5=00FF3F68 A6=0000CB84 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=000000FF D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:ECA6  46 FC  MOVE    #$2000,SR                A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEF5 A5=00FF3F68 A6=0000CB84 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=000000FF D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:ECAA  4E 75  RTS                              A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FEF5 A5=00FF3F68 A6=0000CB84 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=000000FF D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

00:EF80  3B 7C  MOVE.w  #$0118,$0002(A5)         A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=0000005C D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EF86  1B 7C  MOVE.b  #$03,$0000(A5)           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=0000005C D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EF8C  42 40  CLR.W   D0                       A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=0000005C D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EF8E  10 2D  MOVE.b  $0001(A5),D0             A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=00000000 D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EF92  06 00  ADDI.B  #$11,D0                  A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=00000000 D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnZvc
00:EF96  4D F9  LEA     ($0000C984),A6           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=00FF07B0 A7=00FF0752 D0=00000011 D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EF9C  32 3C  MOVE.w  #$A000,D1                A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=0000C984 A7=00FF0752 D0=00000011 D1=00000100 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EFA0  61 00  BSR     #$FFFFFC9E [00:EC40]     A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=0000C984 A7=00FF0752 D0=00000011 D1=0000A000 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc

; ------------------------------------------------------------------------

; Load pointer base address

00:EC40  49 F9  LEA     ($0007FC82),A4           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0000EF78 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=00000011 D1=0000A000 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc

; 2-byte pointer table

00:EC46  34 00  MOVE.w  D0,D2                    A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FC82 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=00000011 D1=0000A000 D2=00000000 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc
00:EC48  02 40  ANDI.W  #$7FFF,D0                A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FC82 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=00000011 D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC4C  E3 40  ASL.W   #1,D0                    A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FC82 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=00000011 D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc

; Local offset to string

00:EC4E  30 34  MOVE.w  $00(A4,D0),D0            A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FC82 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=00000022 D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC52  D8 C0  ADDA.W  D0,A4                    A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FC82 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc

; Get ready to write to VRAM (see routine above)

00:EC54  47 F9  LEA     ($00C00000),A3           A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00FF0408 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC5A  48 E7  MOVEM.L {d0-a7}[00 02],-(A7)     A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074E D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC5E  46 FC  MOVE    #$2700,SR                A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC62  33 FC  MOVE.w  #$8F02,($00C00004)       A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xnzvc
00:EC6A  4E B9  JSR     ($00000080)              A0=00FF2734 A1=00FF252A A2=00FF28D6 A3=00C00000 A4=0007FE90 A5=00FF3F68 A6=0000C984 A7=00FF074A D0=0000020E D1=0000A000 D2=00000011 D3=00000000 D4=00000EF0 D5=00000000 D6=00060000 D7=0000FFFF xNzvc
